Source Manager is shareware. The registration fee is $25. (Site licenses are available at a reduced rate.) Please send your registration payment to the address below, and I sincerely thank you for your support.
Larry Gerndt
877 Heatherstone Way #201
Mountain View, CA 94040
Phone: 415-967-4836
Overview
Source Manager is a drag-n-drop shareware application designed to aid developers who use either SourceServer or Projector source code control. It was originally written with two goals in mind:
1. Quickly find all files which should be checked in, and
2. Make it easier to check in those files
but has evolved into a multi-featured utility that nicely supplements Projector/SourceServer.
Here's how it works. First, if you haven't already done so, you set the options in the Options dialog to specify what kind of files you want to see listed. You would normally configure it to show all files that you might want to check in (i.e. Modifiable, Modified-Read-Only, and Orphans), but the Options are very flexible. Then you drag a folder or group of files onto Source Manager and it builds a list of files that match the criteria you specified in the Options dialog. This list is then displayed for your perusal. For each file, it shows the file's
• Filename
• Project (if any)
• Status (i.e. Modifiable, Read-Only, etc)
• Last Modified date
• Comment
• Task
To edit the current comment and task associated with a file, double-click either the Comment or Task field. To generate CheckIn commands for the files listed, you can sort the list by project or however you wish, select whatever files you want, then select the Edit menu's Copy CheckIn Cmds... item, which copies the proper CheckIn commands to the clipboard. To check in, simply paste the CheckIn commands into a TC 6.0+ or MPW document, select them, and execute them, thus checking in all files at once, with proper comments already embedded in their 'ckid' resources.
Perhaps the single most usefull feature of Source Manager that you don't get with Projector or Think's SourceServer interface is that it list files from all nested projects, whereas Projector/SourceServer makes you switch to each nested project and scroll through a tiny window to see which files need to be checked in. But there are lots of other features too, all of which are listed below.
Features
If you don't feel like reading all this, just try balloon help and winging it. There are no big surprises in here except for maybe a key-shortcut . It may make a better reference section than the balloon help though.
• Bird's Eye View - Lists files from all projects in one list, showing which project they belong to, their status, their comment and task, and their last-modified date.
• Comment/Task Edit - Double-click on the Comment or Task field, and you get an editing window showing the file's comment and task, which you can edit. Extremely handy for checking or revising what you did to each file before you proceed to check in. You can also select multiple files before double-clicking, which tells Source Manager that you want the comment and/or task you enter to be inserted in all the selected files. This can be very handy when you've just modified a ton of files to accomplish some basic goal, and you don't want to write individual comments and/or tasks for each file. Also handy for setting just the Task fields of a bunch of files, leaving their comments alone (When you leave either the comment or task field blank, Source Manager will leave whatever was in that field in 'ckid' unchanged).
• CheckIn - Checks in the selected files to their respective projects. If there are orphans in the selection, Source Manager will infer (if "infer projects" is on) which project to check the file into by looking for another file in the same directory that has a 'ckid' resource. The first one it finds is used. If "infer project" is off, it checks the file into the currently mounted project (top level).
• SourceServer feedback - replies from SourceServer are displayed in a read-only window, whose position and size are remembered.
• Mount ProjectorDB - Works identical to Think C. Just select the ProjectorDB file of your top level project. All nested projects will be automatically mounted.
• Launch SourceServer - If SourceServer isn't already running, you can launch it using this command. The first time you use this command, Source Manager will ask you to find SourceServer. From then on, even after quitting and re-running, SourceManager will remember where it is so you won't be asked to find it again (unless you move it).
• DeleteRevisions - Deletes all revisions of the selected files from their projects, then orphans the files. This is really handy not only for really wanting to delete obsolete files but also for when you want to compact your ProjectorDB by deleting all revisions of, say, a large resource file that you don't care about older revisions of. As soon as you complete DeleteRevisions, you could then check it in as new file.
• OrphanFiles - Orphan all selected files (remove their 'ckid' resources).
• Modify Read-Only - Of the selected files, Source Manager will change any that are currently Read-Only to Modified Read-Only. It won't mess with checked out files.
• ReadOnly - Of the selected files, Source Manager will change any that are currently Modified Read-Only to Read-Only. It won't mess with checked out files.
• RenameProjectorFile - For the selected files, Source Manager will, one by one, ask you for a new filename and then issue a RenameProjectorFile command to SourceServer, and then it will rename your file and update its 'ckid' resource so Projector/SourceServer won't complain about your file having a bad 'ckid'. This makes a once difficult task a breeze.
• CheckIn Commands - The Copy CheckIn Cmds... menu item in the Edit menu builds Projector/SourceServer CheckIn commands for each selected file in the list and copies them to the clipboard. You can then use these in Projector/SourceServer: Paste them into a Think C or MPW document, highlight them, execute them, and walk away. This can also be a good way of verifying that the projects Source Manager has inferred for orphans is what you want.
• Open File - a double-click on the Filename field opens the file with whatever application created it. This is identical to double-clicking the file's icon in the finder, but is done using an 'sope' Apple Event. I love this feature, and have used it for things totally unrelated to source control.
• Options Dialog with Balloon help - Use the Options menu item to set the options before a drag and drop. The settings are remembered. Full set of options for selecting which files are listed, and a host of other usefull options. Changing the options on a currently displayed list will change the list after you dismiss the dialog. Full balloon help implemented for this dialog.
• Options Palette - Use the floating options palette as a shortcut to control many of the options found in the Options dialog.
• Sorting - The list implements a finder-like user interface for sorting. Simply click on the category (i.e. Filename, Project, etc.) to sort by that category. One nice option is the Mark Unchanged checkbox, which makes Source Manager mark files which, according to their mod date, have not changed from the time you got them from Projector/SourceServer. You might want to cancel the checkout of these files or, if they're Modified-Read-Only, you can change them back to Read-Only, so that they don't need to be checked in and won't prevent new checkouts from overwriting them.
• Resizeable Columns - The columns and table size and position may all be drag-adjusted and are remembered by the program.
• Branch Revisions - Branch revisions are shown regardless of whether they are Modifiable or not. The reasoning behind that is it's important to know which files are on a branch, because if you check in a branch thinking you're checking into the main trunk, your colleagues will not get your file (they get revisions from the main trunk unless they specifically check out a branch revision). This has happened to me more than once. Branch revisions are denoted in the list by angle brackets <> around the file status (i.e. <Read-Only>).
• Orphans - also known as "lurkers", are files which are not part of any project (no 'ckid' resource). It's good to see these since some of them may be files you intend to check in as new files for a project. CheckIn commands generated for orphans contain the -new option instead of -project. Since orphans can be any kind of file, there is an extensive yet simple set of orphan selection controls in the Options dialog that let you filter out or select only the orphans you want to see. The criteria used are file extension, and file type/creator.
• Orphan adoption - the Infer Project option causes Source Manager to try to find homes (projects) for orphans, and use that project in the CheckIn command it builds. It does this by looking in orphan file's directory for a project file, and assumes the project that file belongs to is the project to you want to check the orphan into. This makes it easy to check in new files to multiple projects at once, assuming you keep one project per folder.
• Check-in feedback - If you switch out to MPW or Think C and check in some files, and then switch back in, and if you have chosen not to list Read-Only files, you'll notice that Source Manager has removed those files from the list. Otherwise, you'll notice their status has changed to Read-Only. This feedback helps you be sure that you have checked in all the files you intended to. To enable this feature, make sure the Refresh On Resume option is checked. If you're working with a large number of files, this re-scanning can take a significant amount of time, so there are two remedies: 1. Hold the option key down when switching back to Source Manager. This will prevent any re-scanning. 2. Check the Only listed files option. It will then attempt to re-scan only the files that are currently listed (as opposed to all the files that you dragged onto Source Manager originally). The currently listed files will generally be a lot less than the original batch of files if you have set your options set to list only Modified-Read-Only and Modifiable files.
• Revert to Read-Only - Change any Modified-Read-Only file back to Read-Only, or vice-versa. This will be handy when you know you haven't changed a file, but you did perform a Modify Read-Only on it because you thought you were going to change it. Another instance might that you actually did change the file, but you don't want your changes kept (your file will be overwritten next time you check out a later revision of this file. This feature is implemented as a button in the Comment/Task edit window.
• Drop more files - Once you have a table up, you can add files to it by drag-dropping some more files/folders, or by using the File/Open... menu item.
• Hot key selection - When the list is sorted by Filename, you can type a single letter to scroll the list to the first line that has a file name starting with that letter. When the list is sorted by any other criteria, hot key selection doesn't happen.
Planned Future Features
The following features are among the planned new features for future revisions of Source Manager. The amount of time I put into this program will be directly proportional to the number of users who register. Feature requests from registered users will be given priority.
• Full ProjectorDB access - Provide ALL the functionality possible via SourceServer, going above and beyond Think's SourceServer interface.
A Word About Two Other Utilities
There are two other utilities I have written and made available on AOL which I think you may find usefull: Edit Comment (which is currently only for Think C users) adds an Edit Comment... menu item to Think's Edit menu, which brings up the same comment-editing window you see in Source Manager, for editing the Projector/SourceServer comment of the file displayed in the active window. It is not an INIT, is very unobtrusive and easy to install, and fully compatible with 5.0 through 6.0.1 and probably beyond. The price of this is also $25. It's become a very popular utility at my company. See the built-in read-me when you download it for details. Folder Fonterizer is a free utility which I use all the time. It's a drag-n-drop multi-purpose utility which I originally wrote to change the font and tabs of all Think C files at once. It has evolved beyond its name, since it now does a number of other unrelated but usefull things such as "orphan files", set window position, set Type/Creator, etc. Enjoy, and send me ego strokes if you like it.
Registration
Please send your registration payments to the address below, and thank you for your support.